home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
F1 Licenseware
/
F1 Licenseware - Volume 1.iso
/
disks
/
079c.dms
/
079c.adf
/
weapons_control.lha
/
WEAPON_CONTROL
/
WEAPON_CONTROL.amos
/
WEAPON_CONTROL.amosSourceCode
Wrap
AMOS Source Code
|
1992-02-26
|
4KB
|
168 lines
'***********************************
'
' SHOOTING GAME ENGINE
' --------------------
'
' BY MALCOLM LAVERY �1994
'
'**********************************
'
'**************************
' LOAD SOME AMOS BANKS
'**************************
'
If Length(1)=0 : Load "sprites.abk",1 : End If
If Length(5)=0 : Load "samples.abk",5 : End If
'
'***************************
' OPEN DEFAULT SCREEN
'***************************
'
Screen Open 0,320,256,32,Lowres
Curs Off : Flash Off : Hide On : Cls 0
Palette $5,$FFF,$0
'
'***************************
' SET SOME VARIABLES
'***************************
'
AMOUNT=5 : Rem ***** WEAPON TYPES *****
'
Dim NAME$(AMOUNT),WEAPON(AMOUNT),ROUNDS(AMOUNT),RECOIL(AMOUNT),PITCH(AMOUNT)
'
'**************************
' WEAPON STATISTICS
'**************************
'
' 1=MACHINE GUN
' 2=HAND GUN
' 3=RIFLE
' 4=ROCKET
' 5=PHOTON TOPEDO
'
NAME$(1)="MACHINE GUN (YEH!,SPLAT EM!)" : WEAPON(1)=4 : ROUNDS(1)=10 : RECOIL(1)=60 : PITCH(1)=20000
NAME$(2)="HAND GUN (FAST!,BUT CRAP!)" : WEAPON(2)=5 : ROUNDS(2)=50 : RECOIL(2)=20 : PITCH(2)=10000
NAME$(3)="RIFLE (POWER!,BUT SLOW!)" : WEAPON(3)=6 : ROUNDS(3)=20 : RECOIL(3)=50 : PITCH(3)=11000
NAME$(4)="ROCKETS (MEAN DOODS)" : WEAPON(4)=7 : ROUNDS(4)=8 : RECOIL(4)=100 : PITCH(4)=8000
NAME$(5)="PHOTON TOPEDOS (YEH RIGHT!)" : WEAPON(5)=8 : ROUNDS(5)=30 : RECOIL(5)=150 : PITCH(5)=5000
'
WEAPON=2
RECOIL=0
'
_CHANGE_WEAPON
'
'**************************
'
_CENTRE_TEXT[110,"LEFT MOUSE BUTTON TO FIRE"]
_CENTRE_TEXT[120,"RIGHT MOUSE BUTTON CHANGES WEAPON"]
'
Global NAME$(),WEAPON(),ROUNDS(),RECOIL(),PITCH(),WEAPON,RECOIL
'
'*********************************************
' MAIN GAME LOOP
'*********************************************
'
Do
'
'***** FIRE CURRENT WEAPON *****
'
If Mouse Key=1 and RECOIL=0
_FIRE_WEAPON
End If
'
'***** CHANGE WEAPON TEST ONLY *****
'
If Mouse Key=2
Inc WEAPON
If WEAPON>5
WEAPON=1
End If
_CHANGE_WEAPON
Wait 20
End If
'
'***** UPDATE SIGHTS *****
'
_SIGHTS
'
'***** RESET WEAPONS RECOIL *****
'
If RECOIL>0
Dec RECOIL
End If
'
'******** SCREEN UPDATE *********
'
Wait Vbl
'
Loop
'
'*************************
' GAME PROCEDURES
'*************************
'
Procedure _SIGHTS
'
X=X Screen(X Mouse)
Y=Y Screen(Y Mouse)
'
Bob 1,X,Y,2
'
End Proc
Procedure _FIRE_WEAPON
'
'*********** FIRE CURRENT WEAPON IF IT HAS AMMO **************
'*********** AND WEAPON HAS RECOILED *************************
'
If ROUNDS(WEAPON)>0
'
Sam Play %1000,WEAPON(WEAPON),PITCH(WEAPON)
'
'********* DECREASE WEAPONS AMMO ***********
'
Dec ROUNDS(WEAPON)
RECOIL=RECOIL(WEAPON)
'
_AMMO
'
'*******************************************
'
End If
'
'************************************************************
'
End Proc
Procedure _CHANGE_WEAPON
'
RECOIL=0
'
_AMMO
'
_CENTRE_TEXT[10,NAME$(WEAPON)]
'
End Proc
Procedure _CENTRE_TEXT[Y,TEX$]
'
LE=Text Length(" "+TEX$+" ")/2
'
Ink 0,0
Text 320/2-LE,Y," "+TEX$+" "
'
Gr Writing 0
'
Ink 2,0
Text 320/2-LE+2,Y+1," "+TEX$+" "
'
Ink 1,0
Text 320/2-LE,Y," "+TEX$+" "
'
Gr Writing 1
'
End Proc
Procedure _AMMO
'
Ink 1,0
'
_CENTRE_TEXT[250,"AMMO LEFT "+Mid$(Str$(ROUNDS(WEAPON)),2)]
'
End Proc